package com.zh.note.huawei.onehundred.连续字母长度or第k长子串;

/**
 * @Author: zhanghuan
 * @date: 2023/9/4 11:59
 * @description: create it
 * <p>
 * AAAAHHHBBCDHHHH
 * 3
 */

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // String line = in.nextLine(); // 读取输入的字符串
        // int k = in.nextInt(); // 读取输入的整数
        String line = "AABAAA";
        int k = 2;

        HashMap<Character, Integer> map = new
                HashMap<>(); // 创建一个HashMap，用于存储每个字符出现的最大次数

        char[] chars = line.toCharArray(); // 将字符串转换为字符数组
        if (chars.length ==
                0) { // 如果字符数组长度为0，输出-1并结束程序
            System.out.println(-1);
            return;
        }

        char cur = chars[0]; // 初始化当前字符为字符数组的第一个字符
        int count = 1; // 初始化当前字符出现的次数为1
        map.put(cur, count); // 将当前字符和出现的次数存入HashMap中

        for (int i = 1; i < chars.length; i++) { // 遍历字符数组
            char ch = chars[i]; // 获取当前字符
            if (ch == cur)
                count++; // 如果当前字符和上一个字符相同，当前字符出现的次数加1
            else { // 如果当前字符和上一个字符不同
                cur = ch; // 更新当前字符为当前字符
                count = 1; // 重置当前字符出现的次数为1
            }
            if (map.containsKey(cur)) {
                map.put(cur, map.get(cur) > count ? map.get(cur) : count);
            } else {
                map.put(cur, count);
            }
        }

        List<String> list = new
                ArrayList<>(); // 创建一个List，用于存储每个字符和出现的最大次数
        map.forEach((key, value) -> list.add(key + "-" +
                value)); // 将HashMap中的每个键值对转换为字符串并存入List中
        list.sort(Comparator.comparingInt(o -> -Integer.parseInt(
                o.split("-")[1]))); // 按照出现的最大次数从大到小排序


        if (k > list.size()) System.out.println(-1);
        else System.out.println(list.get(k - 1).split("-")[1]);

        in.close();
    }
}

